package com.hera.process.config.interceptor.impl;
import java.io.Serializable;

import org.aopalliance.intercept.MethodInvocation;
import org.springframework.stereotype.Component;

import com.hera.base.domain.MensajeJSON;
import com.hera.process.config.interceptor.ControllerInterceptor;

@Component("controllerInterceptor")
public class ControllerInterceptorImpl implements ControllerInterceptor, Serializable 
{

	/**
      * 
      */
    private static final long serialVersionUID = -2269463476088223892L;

    @SuppressWarnings({ "rawtypes" })
    @Override
    public Object invoke(MethodInvocation invocation) throws Throwable 
    {
    	MensajeJSON mensajeJSON = null;
    	try {
    		mensajeJSON = (MensajeJSON) invocation.proceed();
		} catch (Exception e) {
			mensajeJSON = new MensajeJSON();
			mensajeJSON.setException(e);
			mensajeJSON.setExito(false);
			mensajeJSON.setMensaje(null);
		}
        return mensajeJSON;
    }
}